const path = require('path')
const CompressionPlugin = require("compression-webpack-plugin")

function resolve(dir) {
	return path.join(__dirname, dir)
}

// vue.config.js
module.exports = {
	/*
	  Vue-cli3:
	  Crashed when using Webpack `import()` #2463
	  https://github.com/vuejs/vue-cli/issues/2463
	 */
	// 如果你不需要生产环境的 source map，可以将其设置为 false 以加速生产环境构建。
	productionSourceMap: false,
	//qiankuan打包时放开
	//outputDir: "../dist/main",
	// 多入口配置
	// pages: {
	//   index: {
	//     entry: 'src/main.js',
	//     template: 'public/index.html',
	//     filename: 'index.html',
	//   }
	// },
	//打包app时放开该配置
	//publicPath:'/',
	configureWebpack: config => {
		//生产环境取消 console.log
		if (process.env.NODE_ENV === 'production') {
			config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
		}
	},
	chainWebpack: (config) => {
		config.resolve.alias
			.set('@$', resolve('src'))
			.set('@api', resolve('src/api'))
			.set('@assets', resolve('src/assets'))
			.set('@comp', resolve('src/components'))
			.set('@views', resolve('src/views'))

		//生产环境，开启js\css压缩
		if (process.env.NODE_ENV === 'production') {
			config.plugin('compressionPlugin').use(new CompressionPlugin({
				test: /\.(js|css|less)$/, // 匹配文件名
				threshold: 10240, // 对超过10k的数据压缩
				deleteOriginalAssets: false // 不删除源文件
			}))
		}

		// 配置 webpack 识别 markdown 为普通的文件
		config.module
			.rule('markdown')
			.test(/\.md$/)
			.use()
			.loader('file-loader')
			.end()

		// 编译vxe-table包里的es6代码，解决IE11兼容问题
		config.module
			.rule('vxe')
			.test(/\.js$/)
			.include
			.add(resolve('node_modules/vxe-table'))
			.add(resolve('node_modules/vxe-table-plugin-antd'))
			.end()
			.use()
			.loader('babel-loader')
			.end()

	},

	css: {
		loaderOptions: {
			less: {
				modifyVars: {
					/* less 变量覆盖，用于自定义 ant design 主题 */
					'primary-color': '#1890FF',
					'link-color': '#1890FF',
					'border-radius-base': '4px',
				},
				javascriptEnabled: true,
			}
		}
	},

	devServer: {
		port: 3000,
		// hot: true,
		// disableHostCheck: true,
		// overlay: {
		//     warnings: false,
		//     errors: true,
		// },
		// headers: {
		//     'Access-Control-Allow-Origin': '*',
		// },
		proxy: {
			'/apis': {
			   target: 'http://172.29.17.83:81', //mock API接口系统
			   ws: false,
			   changeOrigin: true,
			   pathRewrite: {
			     '^/jeecg-boot/apis': ''  //默认所有请求都加了jeecg-boot前缀，需要去掉
			   }
			 },
			/* 注意：jeecgboot前端做了改造，此处不需要配置跨域和后台接口（只需要改.env相关配置文件即可）
			    issues/3462 很多人此处做了配置，导致刷新前端404问题，请一定注意*/
			'/jeecg-boot': {
				target: 'http://localhost:8080',
				ws: false,
				changeOrigin: true
			}
		}
	},

	lintOnSave: undefined
}
